package ace.module.mail.address.api.model.input.mailaddress;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * .
 *
 * @author Caspar
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MadMailAddressModifyItemInput {


  @NotNull
  @Schema(title = "地址id", description = "")
  private Long id;

  /**
   * 账户id
   */
  @NotNull
  @Schema(title = "账户id", description = "")
  private Long accountId;

  /**
   * 邮寄地址类型 1-接收地址 2-邮寄地址
   */
  @Max(value = 2)
  @Min(value = 1)
  @Schema(title = "邮寄地址类型", description = "1-接收地址 2-邮寄地址")
  private Integer type;

  /**
   * 联系人
   */
  @Size(max = 255)
  @Schema(title = "联系人", description = "")
  private String contacts;

  /**
   * 联系电话
   */
  @Size(max = 255)
  @Schema(title = "联系电话", description = "")
  private String contactPhone;

  /**
   * 邮政编码
   */
  @Size(max = 255)
  @Schema(title = "邮政编码", description = "")
  private String postCode;

  /**
   * 国家code
   */
  @Size(max = 255)
  @Schema(title = "国家code", description = "")
  private String countryCode;

  /**
   * 国家
   */
  @Size(max = 255)
  @Schema(title = "国家", description = "")
  private String country;

  /**
   * 省code
   */
  @Size(max = 255)
  @Schema(title = "省code", description = "")
  private String provinceCode;

  /**
   * 省
   */
  @Size(max = 255)
  @Schema(title = "省", description = "")
  private String province;

  /**
   * 市Code
   */
  @Size(max = 255)
  @Schema(title = "市Code", description = "")
  private String cityCode;

  /**
   * 市
   */
  @Size(max = 255)
  @Schema(title = "市", description = "")
  private String city;

  /**
   * 区Code
   */
  @Size(max = 255)
  @Schema(title = "区Code", description = "")
  private String areaCode;

  /**
   * 区
   */
  @Size(max = 255)
  @Schema(title = "区", description = "")
  private String area;

  /**
   * 街道
   */
  @Size(max = 255)
  @Schema(title = "街道", description = "")
  private String streetCode;

  /**
   * 街道
   */
  @Size(max = 255)
  @Schema(title = "街道", description = "")
  private String street;

  /**
   * 详情地址
   */
  @Size(max = 255)
  @Schema(title = "详情地址", description = "")
  private String address;

  /**
   * 默认标签,同一个数据域只能有一条值为1的数据 1=默认 非1=普通
   */
  @Schema(title = "默认标签,同一个数据域只能有一条值为1的数据 1=默认 非1=普通 ", description = "")
  private Long defaultFlag;

  /**
   * 排序
   */
  @Schema(title = "排序", description = "")
  private Integer sort;
}
